class Solution {
    public void sortColors(int[] nums) {
//        int n = nums.length;
//        int i = 0,left = 0,right = n - 1;
//        while(i <= right) {
//            if(nums[i] == 0) {
//                swap(nums,left++,i++);
//            }else if(nums[i] == 1) {
//                i++;
//            }else {
//                swap(nums,i,right--);
//            }
//        }
        int n = nums.length;
        int i = 0,left = -1,right = n;
        while(i < right) {
            if(nums[i] == 0) {
                swap(nums,++left,i++);
            }else if(nums[i] == 1) {
                i++;
            }else {
                swap(nums,i,--right);
            }
        }
    }
    public void swap(int[] nums,int x,int y) {
        int tmp = nums[x];
        nums[x] = nums[y];
        nums[y] = tmp;
    }
}
